﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BUGCOME.Model
{
    /// <summary>
    /// 字符串参数传输对象
    /// 是ParmDto的字符串类型特化版本，用于简化字符串参数的传递
    /// </summary>
    public class StrDto
    {
        /// <summary>
        /// 字符串参数值
        /// </summary>
        public string Value { get; set; }
    }
    /// <summary>
    /// 通用参数传输对象
    /// 用于封装单个值类型的参数，适用于API接口中传递单个参数的场景
    /// </summary>
    /// <typeparam name="T">参数值的类型</typeparam>
    public class ParmDto<T>
    {
        /// <summary>
        /// 参数值
        /// </summary>
        public T Value { get; set; }
    }

    /// <summary>
    /// 通用列表参数传输对象
    /// 用于封装列表类型的参数，适用于API接口中传递批量数据的场景
    /// </summary>
    /// <typeparam name="T">列表项的类型</typeparam>
    public class ListDto<T>
    {
        /// <summary>
        /// 参数列表值
        /// </summary>
        public List<T> Value { get; set; }
    }

    /// <summary>
    /// 带ID的通用参数传输对象
    /// 用于需要同时传递ID和其他参数的场景，如根据ID更新数据时携带更新参数
    /// </summary>
    /// <typeparam name="T">参数值的类型</typeparam>
    public class ParmIdDto<T>
    {
        /// <summary>
        /// 数据ID，通常用于标识需要操作的具体对象
        /// </summary>
        public long Id { get; set; }

        /// <summary>
        /// 用户ID，用于标识执行操作的用户
        /// </summary>
        public long UserId { get; set; }

        /// <summary>
        /// 名称，可用于描述操作对象或执行操作的用户
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 附加参数值，用于传递与ID相关的其他参数
        /// </summary>
        public T Value { get; set; }
    }
}
